home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 014 / u_docs.arc / DOCUMENT.ONE next >
Encoding:
Text File  |  1987-03-05  |  51.5 KB  |  850 lines

  1.  
  2.            
  3.           
  4.                          :::::::::::::::::::::::::::::::::::::::
  5.                          :::::: NEW RELEASE! VERSION 4.00 ::::::
  6.                          :::::::::::::::::::::::::::::::::::::::
  7.           
  8.           
  9.           
  10.           
  11.           
  12.           
  13.           
  14.                     ==================================================
  15.                     I                                                I
  16.                     I                                                I
  17.                     I         The FreeSoft Company Presents:         I
  18.                     I                                                I
  19.                     I         ---> The Ultra Utilities <---          I
  20.                     I           "The Wizard's Apprentice"            I
  21.                     I                                                I
  22.                     I      User's Manual And Guide To Operation      I
  23.                     I                                                I
  24.                     ==================================================
  25.           
  26.           
  27.           
  28.           
  29.           
  30.           
  31.           
  32.           
  33.           
  34.           
  35.           
  36.           
  37.           
  38.           
  39.           
  40.             Copyright (C), 1983 by The FreeSoft Company.  All rights reserved
  41.                         Version 4.00, First Release: January, 1984
  42.           
  43.           This manual and the accompanying programs U-ZAP.EXE, U-FORMAT.EXE and 
  44.           U-FILE.EXE may be copied and shared freely as long as certain 
  45.           duplication rules are adhered to.  Please see Appendix A of this 
  46.           manual for the FreeSoft duplication policy.  Anyone found duplicating 
  47.           any part of this manual or the programs mentioned above not according 
  48.           to the policies in Appendix A of this manual will suffer from guilt 
  49.           for eternity.  Think about it...
  50.                                  Ultra-Ultility Warranty
  51.           
  52.           The programs U-ZAP.EXE, U-FORMAT.EXE and U-FILE.EXE and this manual 
  53.           are provided on an "AS IS" basis without warranty of any kind, 
  54.           expressed or implied, including but not limited to the implied 
  55.           warranties of merchantability and fitness for a particular purpose.  
  56.           The entire risk as to quality and performance of these programs and 
  57.           this manual rests solely with the user.  Should any part of these 
  58.           programs or this manual prove defective, the user will assume the 
  59.           entire cost of all necessary repair, servicing, and correction.  In 
  60.           no event will The FreeSoft Company be liable to you for any damages, 
  61.           including any lost profits, lost savings, or other incidental or 
  62.           consequential damages arising out of the use or inability to use 
  63.           these programs or this manual, even if The FreeSoft Company has been 
  64.           advised of the possibility of such damages.  This warranty gives you 
  65.           specific legal rights, and you may have other rights which may vary 
  66.           from state to state.  Some states do not allow the exclusion of 
  67.           implied or consequential damages so parts of the above may not apply 
  68.           to you.  By operating any of the above programs or using any part of 
  69.           this manual, you acknowledge that you have read this agreement, 
  70.           understand it, and agree to be bound by its terms and conditions.  
  71.           You further agree that it is the complete and exclusive statement of 
  72.           the agreement between us, which supercedes any proposal or prior 
  73.           agreement, oral or written, and any other communications between us.
  74.           
  75.           If you have registered, feel free to write us with any questions you 
  76.           might have concerning our products.  If there seems to be a need for 
  77.           it, we may open up a telephone hotline or bulletin board for fast 
  78.           service.
  79.           
  80.           WE WILL OFFER ABSOLUTELY NO SUPPORT TO UNREGISTERED USERS.  IF YOU DO 
  81.           NOT CHOOSE TO REGISTER, YOU ARE COMPLETELY ON YOUR OWN!  ANY LETTERS 
  82.           OR QUESTIONS FROM UNREGISTERED USERS WILL BE IGNORED.  SO THERE!
  83.                                     Table Of Contents
  84.           
  85.           Introduction.................................................. 1
  86.  
  87.                                    Section I: Ultra-Zap
  88.           Display/Modify Disk Sectors................................... 2
  89.           Display/Modify File Sectors................................... 4
  90.           Copy Disk Sectors............................................. 5
  91.           Fill Disk Sectors............................................. 5
  92.           Search For Bytes In Disk Sectors.............................. 5
  93.           Search For Bytes In File Sectors.............................. 6
  94.           Modify Sector Fill Byte....................................... 6
  95.           Modify Display Radix.......................................... 6
  96.           Interrogate Disk Sectors...................................... 7
  97.           Toggle Menu Alert Tone........................................ 8
  98.           Display/Modify Disk Parameters................................ 8     
  99.           How To Display/Modify Non-Standard Sectors.................... 9
  100.  
  101.                                  Section II: Ultra-Format
  102.           Format A Standard Track.......................................10
  103.           Re-format A Standard Track Without Erasing Old Data...........10
  104.           Format A Non-standard (Copy-Protected) Track..................10
  105.           Display/Modify Disk Parameter Table...........................11
  106.           Modify Display Radix..........................................11
  107.           
  108.                                  Section III: Ultra-File                      
  109.           Display File's Directory Information..........................12
  110.           Assign Or Remove System Status................................12
  111.           Assign Or Remove Hidden Status................................12
  112.           Display List Of Sectors Allocated To File.....................12
  113.           Build A File From Scratch.....................................13
  114.           Attempt To Restore An Erased File.............................13
  115.           Produce A Map Of Diskette.....................................13
  116.           Selectively Purge Files.......................................14
  117.           
  118.                                   Section IV: Appendices                      
  119.           Appendix A: The FreeSoft Duplication Policy...................15
  120.           Registration Form.............................................18
  121.           Invoice.......................................................19
  122.           Appendix B: A Brief Discussion Of Diskette Formats............20
  123.           Appendix C: Version changes and additions.....................21
  124.           (1)                          Introduction
  125.                                        ------------
  126.           
  127.           The Ultra-Utilities are a powerful collection of programs that will 
  128.           allow you complete access to the power of your IBM-PC's disk drive 
  129.           controller circuitry and PC-DOS disk operating system.  With this 
  130.           power also comes the abilty to do terrible damage to your diskettes 
  131.           if you make a mistake at the wrong time.  To avoid this:
  132.           
  133.              A) Make a copy of the Ultra-Utilities and keep the originals in a  
  134.                 safe place.  When using the copies, remove the diskette 
  135.                 containing the Ultra-Utilities after the desired program has    
  136.                 loaded.  It is not necessary for this diskette to remain in the 
  137.                 disk drive after the program has begun execution.
  138.           
  139.              B) When working on other diskettes, ALWAYS WORK ON A COPY!  The 
  140.                 time it takes to backup a diskette is well worth it effort. If  
  141.                 you are working on a diskette that you are unable to yet make a 
  142.                 copy of, at least place a write-protect tab on it and work 
  143.                 slowly and cautiously.
  144.           
  145.           To use these programs properly you will need:
  146.           
  147.              1) IBM-PC with at least 64K RAM, one single or double-sided disk   
  148.                 drive, and an 80-column display.  Because of the wide variety   
  149.                 of IBM-PC configurations and the varying levels of 
  150.                 "compatibility" with PC clones, we cannot and do not support
  151.                 questions concerning support of other equipment configurations.
  152.                 Additional memory may be needed if you boot under DOS 2.00.
  153.  
  154.              2) DOS 1.10 or 2.00: Again, if you try to use other versions of 
  155.                 PC-DOS, you are on your own.  These programs have been tested   
  156.                 only on PC-DOS versions 1.10 and 2.00.
  157.           
  158.           You do not have to be a "hacker" or be able to multiply four digit 
  159.           hexadecimal numbers in your head to be able to use the 
  160.           Ultra-Utilities.  If you are more technically inclined, you'll no 
  161.           doubt find many uses for the powerful features of these programs.  If 
  162.           you're not so technically inclined, you'll probably use these 
  163.           programs for "snooping" and educational purposes, and will first want 
  164.           to read the chapter on Modifying The Display Radix.  When first 
  165.           executed, the Ultra-Zap and Ultra-Format programs display all numbers 
  166.           in hexadecimal format (base 16).  If you are not comfortable using 
  167.           hex values, use that function to change all printed values to decimal 
  168.           (base 10).
  169.           
  170.           Features of the Ultra-Utilities
  171.           -------------------------------
  172.           1) The Ultra-Utilties use a special input procedure that allows you 
  173.              to only enter in characters appropriate to the question being 
  174.              asked.  In most cases, a number of small boxes will appear next to 
  175.              a question.  These boxes tell you that the program is waiting for  
  176.              your response, as well as the maximum number of characters you may 
  177.              type to answer the question.  If no boxes are displayed, a single  
  178.              key press is all that's needed, and it is not necessary to press   
  179.              the <ENTER> key afterwards.
  180.           
  181.           2) Although the Ultra-Utilities will display numeric values in the    
  182.              format specified by the display radix, you can input numbers using 
  183.              any of three allowable radices without regard for the display 
  184.              radix.  Decimal numbers should be entered normally, without any
  185.           (2)
  186.              prefix.  Octal numbers should be entered using the prefix &O, and 
  187.              hexadecimal numbers should be entered using the prefix &H.  This 
  188.              is in keeping with the standard numeric entry procedures of IBM    
  189.              BASIC.  Example: the decimal number 17 could be entered as:
  190.                                 17 (decimal)
  191.                               &H11 (hexadecimal)
  192.                               &O21 (octal)
  193.           
  194.           3) If you have a lineprinter installed and selected, you can obtain   
  195.              a hardcopy of the screen at any point by pressing the "PrtSc" key  
  196.              while holding down the <SHIFT> key.  This is also in keeping with  
  197.              BASIC operation.
  198.           
  199.           4) The Ultra-Utilities are completely menu-driven.  This means you'll
  200.              never have to guess which cryptic command the computer is waiting  
  201.              for: all of your available options are displayed on the screen.    
  202.              Although some folks prefer non-menu-driven programs, we feel it is
  203.              a necessary deterrent to possibly catastrophic mistakes made by 
  204.              the wrong guess with these programs.
  205.           
  206.           5) Ultra-Zap will allow you to display and modify sectors of any 
  207.              length or name (such as those used in copy-protected software).    
  208.              Although this is by no means meant to be a "pirate" program, it    
  209.              is of great educational use for the novice "zapper".  It can be
  210.              used in conjunction with Ultra-Format to create your own copy-
  211.              protected diskettes.
  212.           
  213.           6) IN MOST CASES, answering a prompt with the single letter "Q" 
  214.              followed by the <ENTER> key will CANCEL THE CURRENT FUNCTION and   
  215.              RETURN YOU BACK to the main menu.
  216.           
  217.           GET READY TO "ZAP" AWAY YOUR TROUBLES!
  218.           --------------------------------------
  219.           Hopefully, you have restrained you anxiousness to get started with 
  220.           the Ultra-Utilities and have taken at least a few moments to scan 
  221.           this manual.  We hope that you have fun with these programs and that 
  222.           they earn a permanent home in your software library.  Don't forget to 
  223.           look over the duplication policy in Appendix A of this manual.  It 
  224.           explains how the Ultra-Utilities can even earn you a few extra bucks 
  225.           just for spreading it around.
  226.           
  227.           Whenever you are finished with an Ultra-Utility program, always exit 
  228.           by choosing the Q>uit function from the main menu.  The 
  229.           Ultra-Utilities change some important tables in memory that DOS 
  230.           expects to be present and correct, and the "Q" function restores them 
  231.           to their original values.
  232.  
  233.           One last caveat... this manual is by no means meant to be a tutorial 
  234.           on the diskette storage techniques of the IBM-PC and PC-DOS.  We 
  235.           recommend for further study the PC-DOS manual, the IBM Technical 
  236.           Reference manual, and Peter Norton's "Inside The IBM-PC" published by 
  237.           Robert J. Brady.
  238.           
  239.                                Display/Modify Disk Sectors
  240.                                ---------------------------
  241.           
  242.           This function, along with the Display/Modify File Sectors function is 
  243.           the real meat of the Ultra-Zap program.  It gives you the ability to 
  244.           "snoop" around your diskettes, modify bytes or characters, and
  245.           (3) 
  246.           encrypt or decode encrypted sector data.
  247.           
  248.           When you select this function, you'll first be prompted for the side, 
  249.           drive, track and sector number of the first sector you wish to look 
  250.           at.  Remember, if you only have a single-sided disk drive, you will 
  251.           always specify side 0.  If you are unclear what to enter, take a 
  252.           moment to peruse Appendix B of this manual.
  253.                                                                   
  254.           Once you have entered the above info, you will be instructed to mount 
  255.           the diskette on the appropriate drive and press any key.  Once you 
  256.           have done so, the disk drive should come to life and you will enter 
  257.           what we call the "search mode".
  258.           
  259.           The search mode displays a straight dump of the ASCII characters in a 
  260.           sector, allowing you to find the information you're looking for in a 
  261.           hurry.  Only those characters with ASCII codes between 32 and 127 
  262.           (decimal) will be displayed.  The rest will be displayed as periods.
  263.           
  264.           There are several command keys active in the search mode:
  265.           UP ARROW - increments the track by one and displays that sector.
  266.           DOWN ARROW - decrements the track by one and displays that sector.
  267.           RIGHT ARROW - increments the sector by one and displays that sector.
  268.           LEFT ARROW - decrements the sector by one and displays that sector.
  269.           "5" KEY ON NUMERIC KEYPAD - switches from Side 0 to Side 1 and vice-  
  270.              versa (if you have double-sided drives) and displays that sector.
  271.           "M" key - enters "modify" mode.
  272.           "Q" key - returns to Ultra-Zap main menu.
  273.           
  274.           In the "modify mode" the sector information will be displayed a bit 
  275.           differently.  Select a random sector and let's go through the display 
  276.           together.  The top line reiterates the current side, drive, track, 
  277.           and sector number of the sector you are working on, as well as the 
  278.           current display radix.  The second line just identifies what is in 
  279.           the columns below.  The third line is a template for the "ones" digit 
  280.           of the offset address- we'll come back to this in a moment.  The 
  281.           fourth line starts with the actual sector data.  The leftmost column 
  282.           of these rows show the number of bytes offset into the sector.  Then 
  283.           comes the sector data in numeric form.  The rightmost column contains 
  284.           the ASCII equivalent of the numeric data.  If you are using 
  285.           hexadecimal for the display radix, there will be 16 rows of 16 bytes 
  286.           each.  Decimal uses 20 rows X 10 bytes, and octal uses 16 rows X 
  287.           8 bytes.  If you wanted to find the fifth byte in a sector, you 
  288.           would go to the row marked with the offset address 0000 and scan 
  289.           across under the template in line three of the display marked 
  290.           "5".  It's really pretty easy to find an individual byte in a snap 
  291.           once you get used to this "offset address/template column" 
  292.           arrangement.
  293.           
  294.           The bottom of the screen tells you your available choices, as well as 
  295.           the current modify mode for byte replacement (either "NUM" for entry 
  296.           of numeric replacement bytes, or "ASC" for the direct entry of ASCII 
  297.           replacement characters from the keyboard).  You can toggle back and 
  298.           forth between ASC and NUM modes by choosing the "C" choice.  The "Q" 
  299.           choice returns you to the search mode.  The "I" and "D" choices allow 
  300.           you to add or subtract a number from each of the bytes in the sector 
  301.           for either encrypting or decoding encrypted sector data.  The "M" 
  302.           choice takes you into what we call "replacement mode".  The other two 
  303.           choices are "N" and "P".  You will notice that all of the bytes in a 
  304.           standard 512-byte disk sector aren't displayed all at once in the
  305.           (4) 
  306.           display screen.  What we did is divide the sector into "pages" of 
  307.           data.  Use the "N" key to look at the next higher display "page" of 
  308.           sector data.  Use the "P" key to look at the next lower display page 
  309.           of data.  Depending on the display radix and sector size, each sector 
  310.           may actually be displayed as several pages.
  311.           
  312.           If you wish to modify the bytes in a sector, you should first choose 
  313.           the modify mode you wish to use, and the "N" and "P" choices to 
  314.           display the "page" that contains the bytes you wish to modify.  Once 
  315.           you have done so, select the "M" option to enter the "replacement 
  316.           mode".  In the replacement mode, an inverse cursor will appear in the 
  317.           first byte of that page.  Use the arrow keys to position the cursor 
  318.           on the byte you wish to modify and then press the spacebar.  If you 
  319.           are in NUM mode, you will be prompted to enter in the new value.  For 
  320.           each byte you wish to modify in the NUM mode, you will have to press 
  321.           the spacebar as above.  However, in the ASC modify mode, you just 
  322.           press the spacebar once.  You can then type in characters from the 
  323.           keyboard continuously.  When you are finished modifying bytes in 
  324.           either mode, just press the <ENTER> key.  Note that in the ASC mode 
  325.           you can enter in any ASCII character that appears on the keyboard 
  326.           except the <ENTER> key.  If you wish to enter in a character that 
  327.           does not appear on the keyboard, just hold down the ALT key and type 
  328.           in the three-digit ASCII code of the character on the numeric keypad, 
  329.           just as you would in BASIC.
  330.           
  331.           One more note about the "replacement mode": any ASCII characters that 
  332.           are not between codes 32 and 127 are displayed as dots.  This is 
  333.           because some codes will cause your printer to do weird things if you 
  334.           try to get a screendump using the <SHIFT>-PrtSc combination.  If you 
  335.           wish to look at the actual character for non-alphanumeric characters, 
  336.           just move the cursor over the byte in the replacement mode.  The dot 
  337.           will be replaced with the actual character in the ASCII equivalent 
  338.           column.
  339.           
  340.           After you have pressed the <ENTER> key to end replacement, you will 
  341.           be asked if you wish to update the disk sector with your replacements 
  342.           or just cancel all changes.  Up to now, nothing on the diskette has 
  343.           actually been changed.  Instead, any changes you made were done on a 
  344.           copy of the disk sector in memory.  If you cancel, you will be 
  345.           immediately returned to the main menu with no changes recorded.  If 
  346.           you select the update choice, your changes will be recorded on the 
  347.           disk sector permanently (so be careful, for heaven's sake!).
  348.           
  349.           Whew!  That's quite a bit to swallow in one reading...  My advice is 
  350.           to read this through, practice on a "scratch" diskette (one you can 
  351.           afford to destroy) and then re-read this chapter for the finer points 
  352.           of this powerful feature of the Ultra-Zap program.
  353.  
  354.                                Display/Modify File Sectors
  355.                                ---------------------------
  356.           
  357.           This function is used to root around the program and data files that 
  358.           are on your diskettes.  By using this feature, you can do such things 
  359.           as make easy corrections to data files and change ASCII messages in 
  360.           the programs.  We do not condone people going through and wiping out 
  361.           an author's name or copyright notices.  Such things are not only 
  362.           childish, they deprive the author and software company of the money 
  363.           and credit they deserve, and stifle creative folks from producing
  364.           better software for us all.  However, who can resist going into
  365.           (5) 
  366.           COMMAND.COM and changing the sign-on message to "Ed Spread's Garbage 
  367.           DOS"?  Oh well, it's a dilemma for the philosophers.  Have fun...
  368.           
  369.           This function operates almost exactly like the Display/Modify Disk 
  370.           Sectors function with a few exceptions that pertain to disk files.  
  371.           Once you are familiar with that function, you should have no trouble 
  372.           with this one.  One important difference we will note here is that in 
  373.           the search mode, the up arrow, down arrow, and "5" key have no 
  374.           function.  The left arrow and right arrows still move backwards and 
  375.           forwards through the file sectors.
  376.           
  377.           You should also notice that all file sectors are displayed as 
  378.           physical (we call them logical) sectors.  That means that even if you 
  379.           created a random access data file with a record length of 53 bytes, 
  380.           each sector in this function will still be displayed as 512 bytes.
  381.           
  382.           You will not be able to use this function on any files that contain 
  383.           the "HIDDEN" or "SYSTEM" attributes in their directory entry.  Use 
  384.           Ultra-File to remove these attributes.
  385.  
  386.                                     Copy Disk Sectors
  387.                                     -----------------
  388.           
  389.           This function is used to copy disk sectors from one part of a 
  390.           diskette to another, or between diskettes.  Copying is not done with 
  391.           regard to the prior contents of the destination sectors, and any old 
  392.           data will be destroyed.
  393.           
  394.           Use of this function is pretty straightforward.  If the specified 
  395.           drives for the source and destination diskettes are the same, the 
  396.           program will ask you if the source and destination sectors are on the 
  397.           same diskette, if they are not, you will be prompted to mount the 
  398.           appropriate diskette during the copying process.  Sectors are copied 
  399.           consecutively, according to the progression order described in 
  400.           Appendix B of this manual.
  401.           
  402.                                     Fill Disk Sectors
  403.                                     -----------------
  404.           
  405.           This function is used to fill one or more sectors entirely with a 
  406.           repeating single byte value.  This byte value is selected using the 
  407.           Modify Sector Fill Byte function and has a default value of &HF6 (246 
  408.           decimal) upon program execution.  This is the same as the default 
  409.           value used in formatting fresh sectors by the DOS FORMAT program.
  410.           
  411.           Again, this function is pretty straightforward.  Sectors are filled 
  412.           consecutively according to the progression order described in 
  413.           Appendix B of this manual.
  414.           
  415.                              Search For Bytes In Disk Sectors
  416.                              --------------------------------
  417.           
  418.           This function is used to quickly locate the position of a specified 
  419.           sequence of bytes or ASCII characters in disk sectors.  The sequence 
  420.           of desired bytes or characters may be up to 15 long.  You will first 
  421.           be asked if the sequence is numeric or ASCII.  Once you have chosen, 
  422.           the program will ask you how many bytes or characters long the 
  423.           sequence is.  Next, you will be prompted to enter the bytes or 
  424.           characters for the search sequence in order one at a time.
  425.           (6)
  426.           Next, you will enter the side, drive, track, and sector number for 
  427.           the start of the search, as well as the number of sectors to search 
  428.           through.  Then the search begins, moving consecutively through 
  429.           sectors as described in Appendix B of this manual.
  430.           
  431.           If the sequence is found in a searched sector, a message will be 
  432.           displayed telling you the side, drive, track, and sector number 
  433.           containing the sequence as well as the offset address of the sequence 
  434.           within that sector.  When each match is displayed, you have the 
  435.           ability to abort the search or continue from that point.  If no 
  436.           matches are found, a message will be displayed telling you so at the 
  437.           end of the search.
  438.           
  439.                              Search For Bytes In File Sectors
  440.                              --------------------------------
  441.           
  442.           This function is operates just like the above Search For Bytes In 
  443.           Disk Sectors except that file sectors are searched instead.  Again 
  444.           you won't be able to use this function with files marked in their 
  445.           directory entries as "HIDDEN" or "SYSTEM" files.  Use Ultra-File to 
  446.           remove these attributes before using this function.
  447.           
  448.                                  Modify Sector Fill Byte
  449.                                  -----------------------
  450.           
  451.           This function allows you to change the default sector fill byte 
  452.           value.  There are essentially two reasons to do this:
  453.           
  454.           A) For use with the Fill Disk Sectors function
  455.           
  456.           B) Before any disk sector or file sector is read from the disk in the 
  457.              Display/Modify functions, the memory buffers that will contain a 
  458.              copy of the sector data are first "flushed" with the sector fill 
  459.              byte value.  If you ever run across a sector with a CRC-type error 
  460.              (either intentionally formatted or caused by diskette wear/tear) 
  461.              the Display/Modify functions will report the error.  Normally, if  
  462.              you do not select the re-try function when a disk error occurs, 
  463.              you are returned to the main menu.  In this instance, Ultra-Zap    
  464.              will allow you to go ahead and look at the contents of the sector. 
  465.              Some of the data may look funny due to effects of the error, but 
  466.              at least you'll be able to have a look at where the CRC error      
  467.              botched things up.  We suggest you select a sector fill byte of    
  468.              zero for this type of work, since it will quickly show you where   
  469.              the read data ends.
  470.           
  471.                                    Modify Display Radix
  472.                                    --------------------
  473.           
  474.           This function is used to present all displayed numeric values in a 
  475.           form you are most comfortable with.  When zapping, some folks 
  476.           naturally hanker to hexadecimal (base sixteen); others are lost 
  477.           without good old decimal (base 10).
  478.           
  479.           Still, there are actually those around that cut their milkteeth on a 
  480.           Sperry-Univac and can't cut it without octal (base eight).  Whatever 
  481.           you folks choose as your strokes, Ultra-Zap is well equipped to make 
  482.           life easy for you.
  483.           (7)
  484.           If you are a beginning zapper, We suggest the first thing you do upon
  485.           executing Ultra-Zap is to choose this function and select the decimal 
  486.           radix.  You Sperry-Univac people can do the same except choose octal. 
  487.           For those of you who learned to count with sixteen fingers, you won't 
  488.           need to do anything.  Hexadecimal is the default radix for Ultra-Zap.
  489.           
  490.                                 Interrogating Disk Sectors
  491.                                 --------------------------
  492.           
  493.           So, you just bought a protected diskette and you just can't wait to 
  494.           find out what makes that thing tick, eh?  This function gets into the 
  495.           guts of a diskette's format and tells you all of its secrets.  While 
  496.           it's great for just snooping around, it's best use will come by being 
  497.           used in concert with the special formatting abilities of the 
  498.           Ultra-Format program.
  499.           
  500.           This function will ask you to specify the drive, side, starting 
  501.           track, and ending track of the interrogation.  It will then ask you 
  502.           the lowest and highest sector numbers to search for.  If you've got 
  503.           a 40-track drive (like most of us), the maximum interrogation will be 
  504.           from track 0 to track 43 (throw in a couple extra tracks for those 
  505.           tricky buggers), searching for sectors 0 to 255 (all values decimal). 
  506.           Such an interrogation will take quite a bit of time, which is why we 
  507.           included the Toggle Menu Alert Tone function.
  508.           
  509.           You can also specify that the output be recorded on your printer to 
  510.           be used for later reference.
  511.           
  512.           Here's a few tips to get the most out of this function:
  513.           
  514.           A) Try to make a backup of the suspect diskette with DOS's DISKCOPY 
  515.              program.  On the weirdly formatted tracks, the program will report 
  516.              a read error.  Write down these track numbers.
  517.           
  518.           B) Place a write-protect tab on the suspect disk and interrogate all 
  519.              of the tracks that DISKCOPY threw a fit over.  Search for sectors  
  520.              0 to 255 (decimal).
  521.           
  522.           C) Most often, the protection scheme is to either format one or more  
  523.              sectors or tracks with sector sizes other than the standard 512    
  524.              bytes, or to either give one of the sectors a wild sector number   
  525.              like 214 or just not format a whole track of eight sectors.  If    
  526.              you've got the same VisiCalc master I do, you'll find that sector  
  527.              8 on track 39 is missing entirely.
  528.           
  529.           The interrogation function will tell you which sector numbers were 
  530.           found, their size in bytes, and if they were formatted with a CRC 
  531.           error (another not so fancy trick).  Also notice that the 
  532.           interrogation process can be aborted by pressing the "C" key.
  533.           (8)                     Toggle Menu Alert Tone
  534.                                   ----------------------
  535.           
  536.           This function is used to sound the computer's speaker when a 
  537.           particularly time consuming function has been completed.  Selecting 
  538.           this function toggles the alert tone on and off, and is most often 
  539.           used with the Interrogate Disk Sectors function, which returns 
  540.           directly to the main menu when finished.
  541.           
  542.           Display/Modify Disk Parameters
  543.           ------------------------------
  544.           Even though the IBM-PC uses a standard format for writing data on 
  545.           diskettes (40 tracks numbered 0 to 39 of 8 sectors each numbered 1 to 
  546.           8 of 512 bytes each), it has the capability of reading and writing 
  547.           many other formats.  To do so, you'll have to change certain bytes in 
  548.           a special table kept in the PC's memory called the Disk Parameter 
  549.           Table.  This function displays the current value of these bytes and 
  550.           allows you to modify them.  Note that not all of the values will be 
  551.           of any use to you.
  552.           
  553.           There are 11 bytes in the Disk Parameter Table:
  554.           
  555.           1) Specify byte #1: the left "nybble" or single digit of this value  
  556.              when viewed in hex is the step rate time for the disk drive head.  
  557.              The right "nybble" is the disk head unload time.  These values are 
  558.              best left alone.
  559.  
  560.           2) Specify byte #2: Again, don't fool around with these values.  The 
  561.              left "nybble" is the disk head load time, and the right nybble is  
  562.              the direct memory access mode select.
  563.           
  564.           3) Wait time until motor is turned off.  Not normally of use.
  565.           
  566.           4) Bytes-per-sector value: AH-HAH!  If you place a "0" in this value, 
  567.              The PC expects all sectors to be 128 bytes long.  A "1" means a 
  568.              sector size of 256 bytes, a "2" means 512 bytes (this is the       
  569.              standard DOS value), and a "3" means 1024 bytes per sector.
  570.           
  571.           5) Highest sector number on a track: This is used for formatting and  
  572.              tells DOS how many sectors there are on each track.
  573.           
  574.           6) Gap length for diskette reads: this is what you fool around with 
  575.              if you keep getting CRC errors when you try to read a non-standard 
  576.              size sector.  Normally, you can just leave this alone except when  
  577.              formatting with Ultra-Format.
  578.           
  579.           7) Data length: This contains the number of bytes in a sector when 
  580.              the value in table byte #4 doesn't contain a 0, 1, 2, or 3.
  581.           
  582.           8) Number of bytes in the gap between sectors: this is also only used 
  583.              when formatting special tracks.
  584.           
  585.           9) Format fill byte: When formatting, this is the initialization byte 
  586.              that will be placed in all new sectors.
  587.           
  588.           10) Head settle time: leave this alone.
  589.           
  590.           11) Motor start time: don't fool with this either.
  591.           (9)           How To Display/Modify Non-Standard Sectors
  592.                         ------------------------------------------
  593.           
  594.           The best way we can think of to demonstrate how to use this program 
  595.           with protected diskettes is to give you an actual example "script".
  596.           
  597.           One fine day, a local marketing manager for a large software company 
  598.           was in our offices boasting his company's newest product.  When we 
  599.           showed him the Ultra-Utilities, he challenged us that it "won't be 
  600.           able to touch this disk".  We sat him down at our PC and booted up 
  601.           Ultra-Zap.  This first thing we did was Interrogate track 1 of his 
  602.           diskette, searching for sectors 0 to 255.  Like magic, Ultra-Zap told 
  603.           us that his diskette was formatted as five sectors, numbered 1, 2, 3, 
  604.           4, and 5, and were 1024 bytes long each.  Next, we went into the Disk 
  605.           Parameter table and changed byte #4 (bytes-per-sector value) to a 
  606.           value of 3 (meaning 1024 bytes per sector).
  607.           
  608.           Now, we choose the Display/Modify function to look at track 1, sector 
  609.           1.  The first thing this function does is attempt to read the 
  610.           FAT table on the diskette to determine if is single or double-sided.
  611.           When you are working with protected diskettes that do not have a 
  612.           valid FAT table, or if you change the bytes-per-sector value, this 
  613.           function will report an error reading track 0, side 0, sector 2.  It 
  614.           will then ask you how many sides are on the diskette (since it 
  615.           couldn't figure this out from the FAT).  We answered 1 side, knowing 
  616.           that nearly all distribution software comes on single-sided 
  617.           diskettes.  The Display/Modify function worked perfectly, as 
  618.           evidenced by the look of worry on our friend's face.  "You're giving 
  619.           this thing away for free?", he asked us.  We decided it would be best 
  620.           not to show him how we could make a backup of his disk with 
  621.           Ultra-Format.
  622.           (10)                   Format A Standard Track
  623.                                  -----------------------
  624.           
  625.           This function is used to lay down a fresh format pattern on a single 
  626.           track.  It will destroy any previous data on that track.  If you are 
  627.           attempting to revive sectors that were marked "damaged" by the DOS 
  628.           FORMAT program, you will have to also change the corresponding values 
  629.           in the File Allocation Table (FAT) after getting a successful format. 
  630.           Refer to the IBM DOS manual for details on the FAT.  Our experience 
  631.           is that the work required is usually not worth the trouble of getting 
  632.           back a few sectors.
  633.           
  634.           When the sectors are formatted, they are initialized with whatever 
  635.           byte is in the "Fill byte" parameter in the Disk Parameter Table.  
  636.           Initially this is &HF6 (246 decimal).  If you wish to change this, 
  637.           see the Display/Modify Disk Parameter Table chapter below.
  638.           
  639.                    Re-Format A Standard Track Without Erasing Old Data
  640.                    ---------------------------------------------------
  641.           
  642.           This function is used whenever a disk starts to report read and write 
  643.           errors in normal use.  It repairs the diskette by first reading the 
  644.           sector data into memory, writing a fresh format pattern on the 
  645.           diskette, and the writing back the old data into the freshly 
  646.           formatted sectors.
  647.           
  648.           You may specify how many times the program should attempt to re-read 
  649.           a sector that reports an error.  Depending on the severity of damage 
  650.           to a sector, it may be necessary to re-read it 50 or more times 
  651.           before you get a good read.  If after the specified number of 
  652.           re-reads the sector still cannot be read, the program will format a 
  653.           fresh sector in that location.  Depending on the file, this may make 
  654.           it unusable.  If it's a program file, probably so.  However, if it's 
  655.           a data file or BASIC program stored in ASCII format, you should be 
  656.           able to go in with Ultra-Zap and patch things up.  After reading the 
  657.           old data, you have the option to abort the fresh formatting and 
  658.           return to the main menu.
  659.           
  660.                                Format A Non-Standard Track
  661.                                ---------------------------
  662.           
  663.           This function is used to create a copy-protected diskette track by 
  664.           placing a format pattern on the diskette that DOS is normally not 
  665.           able to read except under special circumstances.  On the IBM-PC, 
  666.           there are four sector sizes we can format: 128 bytes, 256 bytes, 512 
  667.           bytes, and 1024 bytes.  These sectors sizes can be read by DOS by 
  668.           placing the values 0, 1, 2, and 3 respectively into the 
  669.           byte-per-sector value in the Disk Parameter Table.  Now let's discuss 
  670.           the difference between a logical and physical disk sector as referred 
  671.           to by Ultra-Format.  The normal disk format is 8 sectors of 512 bytes 
  672.           each numbered 1 to 8.  It is possible to give your non-standard 
  673.           sectors any numeric name you wish.  That is, you could format a track 
  674.           with three physical sectors numbered 12, 20, and 235.  This makes it 
  675.           difficult for someone to copy your disk.  Another fancy trick is to 
  676.           format a standard track 40.  Most disk drives are capable of 
  677.           reading and writing a few extra tracks than the standard 0 through 
  678.           39.  Most copy programs, and DISKCOPY, do not look for such a track.
  679.           
  680.           The "Highest Sector Number On Track" value in the Disk Parameter 
  681.           Table tells this function how many physical sectors you wish to
  682.           (11)
  683.           format on your non-standard track.  It does not dictate what the 
  684.           highest logical sector number can be.  For each physical sector, you 
  685.           will be asked to enter the logical sector name (0 to 255) and size 
  686.           value (0, 1, 2, or 3).
  687.           
  688.           Non-standard tracks are usually used to hold special codes that a 
  689.           program checks for when first executing.  To do this, you'll need to 
  690.           incorporate a short disk sector reading assembly language subroutine 
  691.           into your program.  Study the ROM-BIOS calls in the Technical 
  692.           Reference manual for disk I/O (interrupt 13H).  If this is still over 
  693.           your head, drop us a line (registered users only) and we'll send you 
  694.           some ready-to-go sample routines for use in assembly, compiled BASIC, 
  695.           and regular BASIC programs.
  696.           
  697.           One more thing, when you format a non-standard track, you'll need 
  698.           to fiddle around with a couple of values in the Disk Paramter Table, 
  699.           specifically, bytes #6 and #8.  Look at the default values for a 
  700.           standard 8 sector, 512 byte/sector format.  If you wanted to format a 
  701.           track of 256 byte sectors, you might try doubling the standard 
  702.           value of these bytes.  Our first issue of "The Zapper" newsletter 
  703.           deals with formatting non-standard tracks for copy-protection work.
  704.           If you're not a registered user, all we can suggest is 
  705.           experimentation to come up with formats and Disk Parameter Table 
  706.           values that do not cause CRC errors.
  707.           
  708.                            Display/Modify Disk Parameter Table
  709.                            -----------------------------------
  710.           
  711.           This function works exactly like that in the Ultra-Zap program,  
  712.           please refer to that chapter for instructions on how to use this 
  713.           function.
  714.           
  715.                                    Modify Display Radix
  716.                                    --------------------
  717.           
  718.           This function also works just like the Ultra-Zap Modify Display Radix 
  719.           function.  Please refer to that chapter for more information.
  720.           (12)             Display File's Directory Information
  721.                            ------------------------------------
  722.           
  723.           This function allows you to see everything about a file that is kept 
  724.           in DOS's directory of files.  As with most of the functions in the 
  725.           Ultra-File program, this starts with a menu of all of the programs in 
  726.           the directory.  Each filename is preceded with a number.  After the 
  727.           filename, a single character (called the "attribute") tells you the 
  728.           characteristics of a file.  These attribute codes are explained at 
  729.           the bottom of the display.  If you have a double-sided diskette, 
  730.           choose the "M" key to look at the rest of the directory entries. If 
  731.           you have a single-sided diskette, all available file locations are 
  732.           displayed at the same time.
  733.           
  734.           To see the directory information on a file, just type in its 
  735.           corresponding number on the list.  Interestingly enough, we have 
  736.           found that DOS 1.10 has some bugs in the way it sometimes reports a 
  737.           file's date, time, and size in bytes when you issue the DOS command 
  738.           DIR.  This function displays their correct values.
  739.           
  740.           You'll also notice that on all file lists in Ultra-File, deleted 
  741.           files (those killed with BASIC's KILL or DOS's ERASE commands, for 
  742.           example) are shown with the first character of their filename as a 
  743.           question mark.
  744.           
  745.                               Assign Or Remove System Status
  746.                               ------------------------------
  747.           
  748.           This function allows you to either remove or assign the "SYSTEM" 
  749.           attribute given to a file.  Files given this attribute are not 
  750.           displayed with DOS's DIR command, cannot be accessed through DOS, and 
  751.           are not copied with DOS's COPY *.* command.
  752.           
  753.                               Assign Or Remove Hidden Status
  754.                               ------------------------------
  755.           
  756.           This function allows you to either remove or assign the "HIDDEN" 
  757.           attribute given to a file.  Functionally, the "HIDDEN" and "SYSTEM" 
  758.           attributes are alike to DOS.  You'll notice though that system files 
  759.           like IBMBIO.COM and IBMDOS.COM are given both "HIDDEN" and "SYSTEM" 
  760.           attributes.  Hidden files are used a lot by software companies to 
  761.           keep a program "secret".  Backup diskettes made with DISKCOPY still 
  762.           include hidden and system programs, so it is not a good protection 
  763.           means on its own.
  764.           
  765.                         Display List Of Sectors Allocated to File
  766.                         -----------------------------------------
  767.           
  768.           You'll notice that Ultra-Zap's Display/Modify File Sectors function 
  769.           never really tells you where on the diskette the logical file sectors 
  770.           are located.  This function knows all, tells all, about the location 
  771.           of all sectors allocated to a file.  Notice that with double-sided 
  772.           diskettes, sectors are allocated to a file two at a time (sectors 1 
  773.           and 2, 3 and 4, 5 and 6, 7 and 8 are considered groups on a 
  774.           double-sided diskette.  We think a good name for this is a "lump".  
  775.           Just remember there is one sector per lump on a single-sided 
  776.           diskette and two sectors per lump on a double-sided diskette).
  777.           (13)                  Build A File From Scratch
  778.                                 -------------------------
  779.           
  780.           This function is used for creating a new file, and then taking 
  781.           specific "lumps" (see section above for definition of a "lump") and 
  782.           allocating them to this new file.  It can also be used when the 
  783.           Attempt To Restore An Erased File function fails and you have used  
  784.           Ultra-Zap to find the lumps that belong to a file.
  785.           
  786.           THIS IS A POTENTIALLY DANGEROUS FUNCTION!  Always work on a backup if 
  787.           possible!  This function does not care if a lump was allocated to a 
  788.           different file and can generally screw things up royally if you don't 
  789.           know what you're doing.  If you're trying to restore an accidentally 
  790.           erased file, always try the Attempt To Restore An Erase File function 
  791.           first.
  792.           
  793.           This function will ask you to enter in the sectors to allocate to the 
  794.           file.  You must enter these sectors in order!  Also, if you are 
  795.           working on a double-sided diskette, only enter in the first sector of 
  796.           each "lump" (that is, sectors 1, 3, 5, and 7).  If you try to 
  797.           allocate both sectors 1 and 2 to a file, the disk will be thrown into 
  798.           an endless loop.  You can allocate any sector for single-sided 
  799.           diskettes since each sector is considered one lump.
  800.           
  801.           Using this function, you can experiment with a variety of neat tricks 
  802.           including cross-threading files (two files having the same sectors 
  803.           allocated) and allocating an entire diskette to one file.
  804.           
  805.                              Attempt To Restore An Erase File
  806.                              --------------------------------
  807.           
  808.           If you use this function IMMEDIATELY after accidentally erasing a 
  809.           single file, you stand a near 100% chance of resurrection with this 
  810.           function.  When a file is restored with this function or the Build 
  811.           File From Scratch function (deleted file), the first character of the 
  812.           filename will be changed to the letter "Z".  You can use DOS's RENAME 
  813.           command to rename it to its original filename.
  814.           
  815.           If you killed multiple files (ERASE *.TXT type commands are notorious 
  816.           for this), this function will probably not work.  Always use a backup 
  817.           disk (made with DISKCOPY) before allowing this function to change the 
  818.           directory info.
  819.           
  820.                                 Produce A Map Of Diskette
  821.                                 -------------------------
  822.           
  823.           This function allows you to examine an entire diskette, sector by 
  824.           sector, in the form of a unique road map.  Since the output is 
  825.           self-explanatory, we will not discuss it here.  Suffice it to say 
  826.           that you'll wish you took the time to make one of these for your most 
  827.           valued diskettes should you ever experience the hand-spasm that 
  828.           causes one to type ERASE *.* accidentally.   The ORP code means that 
  829.           a sector is an "orphan", that is, it's been marked as allocated in 
  830.           the File Allocation Table (FAT) but doesn't belong to any file in the 
  831.           directory.  Running the DOS program CHKDSK will usually fix any 
  832.           orphan lumps.
  833.           (14)                   Selectively Purge Files
  834.                                  -----------------------
  835.           
  836.           You'll really appreciate this function on those times you want to 
  837.           kill about 20 .TXT-type programs but want to keep one.  In such a 
  838.           case ERASE .TXT will wipe them all out.  This function allows you to 
  839.           go through and choose one by one the files you wish to "purge" from 
  840.           the diskette.  Everytime you enter a file's number from the file 
  841.           list, that file's number will begin to blink.  If you make a mistake, 
  842.           just choose the "Q" function to cancel the purge.  If you have a 
  843.           double-sided diskette, choose the "M" function to look at the rest of 
  844.           the files in the directory.  When you've "marked" all of the files to 
  845.           be purged, just choose the "P" function to start the hand of diskette 
  846.           doom (ouch!).
  847.  
  848.  
  849.  
  850. rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr